// const path = require('path');
// const JSZIP = require('jszip');
// const fs = require('fs');
const Minio = require('minio');
const { rm } = require('fs-extra');
const { version } = require('./package.json');

const minioClient = new Minio.Client({
  endPoint: 'oss.hrtiger.cn',
  port: 443,
  useSSL: true,
  accessKey: `495601d6-fd84-4834-8e99-bffd17c66905`,
  secretKey: `8a411fe1-ec1b-48a4-bda0-900ae63b0020`,
});

// const zip = new JSZIP();
// pushZip(zip, path.resolve(__dirname, './extension'));
// function pushZip(floder, pPath) {
//   const files = fs.readdirSync(pPath, { withFileTypes: true });
//   files.forEach((dirent, index) => {
//     let filePath = `${pPath}/${dirent.name}`;
//     if (dirent.isDirectory()) {
//       let zipFloder = zip.folder(
//         filePath.replace(`${__dirname}\\extension/`, '')
//       );
//       pushZip(zipFloder, filePath);
//     } else {
//       floder.file(dirent.name, fs.readFileSync(filePath));
//     }
//   });
// }

// function start() {
//   zip
//     .generateAsync({
//       type: 'nodebuffer',
//       compression: 'DEFLATE',
//       compressionOptions: {
//         level: 9,
//       },
//     })
//     .then(function (content) {
//       fs.writeFile('./extension.zip', content, err => {
//         if (err) throw err;
//         // uploadFile(filePath);
//         console.log('文件已被保存');
//       });
//     });
// }

function uploadFile(file) {
  const metaData = {
    'Content-Type': 'application/octet-stream',
  };
  minioClient.fPutObject(
    'extension',
    // `extension.v${version}.zip`,
    `extension.zip`,
    file,
    metaData,
    function (err, etag) {
      if (err) return console.log(err);
      rm(file, { force: true });
      console.log('文件上传成功.');
    }
  );
}

uploadFile('./extension.zip');
